from django.shortcuts import render, HttpResponse, redirect
from App import models
from django.core.paginator import Paginator  # 导入分页器


# Create your views here.
def index(request):
    """首页"""
    Article_list = models.Article.objects.all().order_by('-create_time')  # 文章列表按照创建时间排序
    position_list = models.Position.objects.all().order_by('-create_time')  # 职位列表按照创建顺序排列

    def article_num(num=1):  # 分页器函数，可以控制显示的文章数量
        num = int(num)  # 分页器一次读取的内容数量，设置为1是因为文章具有唯一性
        Article_num = Paginator(Article_list, 8)  # 创建分页器对象
        article = Article_num.page(num)  # 获取某一页数据
        return article

    def position_num(num=1):  # 分页器，控制显示职位数量
        num = int(num)
        Position_num = Paginator(position_list, 8)  # 创建分页器对象
        position = Position_num.page(num)
        return position

    return render(request, 'index.html', {
        'article_num': article_num,
        'position_num': position_num
    })


def ArticleList(request):
    """文章列表，目前分为求职必读，干货文章，课程预告，暂时全部以资讯全部显示，如果后端代码量较少，采用分布式管理，做一个导航栏综合显示和选择"""
    Article_list = models.Article.objects.all().order_by('-create_time')  # 文章列表按照创建时间排序

    def Recommended_article(num=1):  # 分页器函数，可以控制显示的文章数量
        num = int(num)  # 分页器一次读取的内容数量，设置为1是因为文章具有唯一性
        Article_num = Paginator(Article_list, 3)  # 创建分页器对象
        article = Article_num.page(num)  # 获取某一页数据
        return article

    return render(request, 'articleList.html', {
        'Article_list': Article_list,
        'article': Recommended_article()
    })


def ArticleContent(request, nid):
    """文章内容"""
    if request.method == "GET":
        Article_list = models.Article.objects.all().order_by('-create_time')  # 文章列表按照创建时间排序
        article_object = models.Article.objects.filter(id=nid).first()  # 获取文章内容
        article_title = article_object.title
        article_desc = article_object.desc
        article_content = article_object.content
        article_create_time = article_object.create_time
        article_category = article_object.category

        def Recommended_article(num=1):  # 分页器函数，可以控制显示的文章数量
            num = int(num)  # 分页器一次读取的内容数量，设置为1是因为文章具有唯一性
            Article_num = Paginator(Article_list, 3)  # 创建分页器对象
            article = Article_num.page(num)  # 获取某一页数据
            return article

        result = {
            'article_title': article_title,
            'article_desc': article_desc,
            'article_content': article_content,
            'article_create_time': article_create_time,
            'article_category': article_category
        }
        return render(request, 'article.html', {
            'result': result,
            'article': Recommended_article()
        })


def PositionList(request):
    """ 职位列表 """
    position_list = models.Position.objects.all().order_by('-create_time')  # 职位列表按照创建顺序排列

    def Recommended_position(num=1):  # 分页器函数，可以控制显示的数量
        num = int(num)  # 分页器一次读取的内容数量，设置为1是因为具有唯一性
        Position_num = Paginator(position_list, 3)  # 创建分页器对象
        position = Position_num.page(num)  # 获取某一页数据
        return position

    return render(request, 'positionList.html', {
        'position_list': position_list,
        'position': Recommended_position()
    })


def PositionContent(request, nid):
    """ 职位内容 """
    if request.method == "GET":
        position_list = models.Position.objects.all().order_by('-create_time')  # 职位列表按照创建顺序排列
        position_object = models.Position.objects.filter(id=nid).first()
        position_corporation = position_object.corporation
        position_company_profile = position_object.company_profile
        position_name = position_object.position_name
        required_specialty = position_object.required_specialty
        position_profile = position_object.position_profile
        contact_name = position_object.contact_name
        contact_address = position_object.contact_address
        contact_number = position_object.contact_number
        create_time = position_object.create_time

        result = {
            'position_corporation': position_corporation,  # 公司名称
            'position_company_profile': position_company_profile,  # 公司简介
            'position_name': position_name,  # 岗位名称
            'required_specialty': required_specialty,  # 所需专业
            'position_profile': position_profile,  # 岗位简介
            'contact_name': contact_name,  # 联系人姓名
            'contact_address': contact_address,  # 联系地址
            'contact_number': contact_number,  # 联系电话
            'create_time': create_time,  # 创建时间
        }

        return render(request, 'position.html', {
            'result': result
        })
